/*
    区间dp-下

    前置知识: 
    讲解067、讲解068 - 从递归入手二维动态规划 & 空间压缩技巧
    讲解076 - 区间dp-上
    【必备】课程的动态规划大专题从讲解066开始，建议从头开始学习会比较系统

    区间dp：大范围的问题拆分成若干小范围的问题来求解
    可能性展开的常见方式：
    1）基于两侧端点讨论的可能性展开
    2）基于范围上划分点的可能性展开

    区间dp专题分为上、下两期，一共12个题
    本节课 区间dp-下 再安排6个题，继续见识更多的区间dp题目

    注意：尤其是 讲解067 - 从递归入手二维动态规划，整个套路请务必掌握！

    ================================================

    题目1
    完成配对需要的最少字符数量
    给定一个由'['、']'、'('，')'组成的字符串
    请问最少插入多少个括号就能使这个字符串的所有括号正确配对
    例如当前串是 “([[])”，那么插入一个’]’即可满足
    输出最少需要插入多少个字符
    测试链接 : https://www.nowcoder.com/practice/e391767d80d942d29e6095a935a5b96b

    ================================================

    题目2
    涂色 & 奇怪打印机
    假设你有一条长度为5的木板，初始时没有涂过任何颜色
    你希望把它的5个单位长度分别涂上红、绿、蓝、绿、红色
    用一个长度为5的字符串表示这个目标：RGBGR
    每次你可以把一段连续的木板涂成一个给定的颜色，后涂的颜色覆盖先涂的颜色
    例如第一次把木板涂成RRRRR
    第二次涂成RGGGR
    第三次涂成RGBGR，达到目标
    返回尽量少的涂色次数
    测试链接 : https://www.luogu.com.cn/problem/P4170
    测试链接 : https://leetcode.cn/problems/strange-printer/

    ================================================

    题目3
    合唱队
    具体描述情打开链接查看
    测试链接 : https://www.luogu.com.cn/problem/P3205

    ================================================

    题目4
    移除盒子
    给出一些不同颜色的盒子boxes，盒子的颜色由不同的正数表示
    你将经过若干轮操作去去掉盒子，直到所有的盒子都去掉为止
    每一轮你可以移除具有相同颜色的连续 k 个盒子（k >= 1）
    这样一轮之后你将得到 k * k 个积分
    返回你能获得的最大积分总和
    测试链接 : https://leetcode.cn/problems/remove-boxes/

    ================================================

    题目5
    合并石头的最低成本
    有 n 堆石头排成一排，第 i 堆中有 stones[i] 块石头
    每次 移动 需要将 连续的 k 堆石头合并为一堆，而这次移动的成本为这 k 堆中石头的总数
    返回把所有石头合并成一堆的最低成本
    如果无法合并成一堆返回-1
    测试链接 : https://leetcode.cn/problems/minimum-cost-to-merge-stones/

    ================================================

    题目6
    统计不同回文子序列
    给你一个字符串s，返回s中不同的非空回文子序列个数
    由于答案可能很大，请你将答案对10^9+7取余后返回
    测试链接 : https://leetcode.cn/problems/count-different-palindromic-subsequences/

*/